let app = {
    middlewares:[],//存放中间件函数的数组
    use(middleware){//向数组中放置新的中间件函数
        app.middlewares.push(middleware);
    }
}
function middleware1(req,res,next){
    console.log('中间件1');
    next();
}
app.use(middleware1);
function middleware2(req,res,next){
    console.log('中间件2');
    next();
}
app.use(middleware2);
function middleware3(req,res,next){
    console.log('中间件3');
    next();
}
app.use(middleware3);
//当收到客户端的请求的时候会依次调用中间件函数
//内部肯定会有一个next函数，当调用next的时候表示要执行下一个中间件函数
let index=0;
function next(){
    //第一次调用next的时候会取取第一个中间件
    let middleware = app.middlewares[index++];
    middleware?.({},{},next);
}
next();